# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

EXPORTS += [
    'jconfig.h',
    'jerror.h',
    'jinclude.h',
    'jmorecfg.h',
    'jpegint.h',
    'jpeglib.h',
]

SOURCES += [
    'jcomapi.c',
    'jdapimin.c',
    'jdapistd.c',
    'jdatadst.c',
    'jdatasrc.c',
    'jdcoefct.c',
    'jdcolor.c',
    'jddctmgr.c',
    'jdhuff.c',
    'jdinput.c',
    'jdmainct.c',
    'jdmarker.c',
    'jdmaster.c',
    'jdmerge.c',
    'jdphuff.c',
    'jdpostct.c',
    'jdsample.c',
    'jdtrans.c',
    'jerror.c',
    'jfdctflt.c',
    'jfdctfst.c',
    'jfdctint.c',
    'jidctflt.c',
    'jidctfst.c',
    'jidctint.c',
    'jidctred.c',
    'jmemmgr.c',
    'jmemnobs.c',
    'jquant1.c',
    'jquant2.c',
    'jutils.c',
]

# These files enable support for writing JPEGs
SOURCES += [
    'jcapimin.c',
    'jcapistd.c',
    'jccoefct.c',
    'jccolor.c',
    'jcdctmgr.c',
    'jchuff.c',
    'jcinit.c',
    'jcmainct.c',
    'jcmarker.c',
    'jcmaster.c',
    'jcparam.c',
    'jcphuff.c',
    'jcprepct.c',
    'jcsample.c',
    'jctrans.c',
]

if CONFIG['LIBJPEG_TURBO_USE_YASM']:
    USE_YASM = True

if CONFIG['LIBJPEG_TURBO_ASFLAGS']:
    if CONFIG['CPU_ARCH'] == 'arm':
        SOURCES += [
            'simd/jsimd_arm.c',
            'simd/jsimd_arm_neon.S',
        ]
    elif CONFIG['CPU_ARCH'] == 'aarch64':
        SOURCES += [
            'simd/jsimd_arm64.c',
            'simd/jsimd_arm64_neon.S',
        ]
    elif CONFIG['CPU_ARCH'] == 'mips':
        SOURCES += [
            'simd/jsimd_mips.c',
            'simd/jsimd_mips_dspr2.S',
        ]
    elif CONFIG['CPU_ARCH'] == 'x86_64':
        SOURCES += [
            'simd/jccolor-sse2-64.asm',
            'simd/jcgray-sse2-64.asm',
            'simd/jchuff-sse2-64.asm',
            'simd/jcsample-sse2-64.asm',
            'simd/jdcolor-sse2-64.asm',
            'simd/jdmerge-sse2-64.asm',
            'simd/jdsample-sse2-64.asm',
            'simd/jfdctflt-sse-64.asm',
            'simd/jfdctfst-sse2-64.asm',
            'simd/jfdctint-sse2-64.asm',
            'simd/jidctflt-sse2-64.asm',
            'simd/jidctfst-sse2-64.asm',
            'simd/jidctint-sse2-64.asm',
            'simd/jidctred-sse2-64.asm',
            'simd/jquantf-sse2-64.asm',
            'simd/jquanti-sse2-64.asm',
            'simd/jsimd_x86_64.c',
        ]
    elif CONFIG['CPU_ARCH'] == 'x86':
        SOURCES += [
            'simd/jccolor-mmx.asm',
            'simd/jccolor-sse2.asm',
            'simd/jcgray-mmx.asm',
            'simd/jcgray-sse2.asm',
            'simd/jchuff-sse2.asm',
            'simd/jcsample-mmx.asm',
            'simd/jcsample-sse2.asm',
            'simd/jdcolor-mmx.asm',
            'simd/jdcolor-sse2.asm',
            'simd/jdmerge-mmx.asm',
            'simd/jdmerge-sse2.asm',
            'simd/jdsample-mmx.asm',
            'simd/jdsample-sse2.asm',
            'simd/jfdctflt-3dn.asm',
            'simd/jfdctflt-sse.asm',
            'simd/jfdctfst-mmx.asm',
            'simd/jfdctfst-sse2.asm',
            'simd/jfdctint-mmx.asm',
            'simd/jfdctint-sse2.asm',
            'simd/jidctflt-3dn.asm',
            'simd/jidctflt-sse.asm',
            'simd/jidctflt-sse2.asm',
            'simd/jidctfst-mmx.asm',
            'simd/jidctfst-sse2.asm',
            'simd/jidctint-mmx.asm',
            'simd/jidctint-sse2.asm',
            'simd/jidctred-mmx.asm',
            'simd/jidctred-sse2.asm',
            'simd/jquant-3dn.asm',
            'simd/jquant-mmx.asm',
            'simd/jquant-sse.asm',
            'simd/jquantf-sse2.asm',
            'simd/jquanti-sse2.asm',
            'simd/jsimd_i386.c',
            'simd/jsimdcpu.asm',
        ]
else: # No SIMD support?
    SOURCES += [
        'jsimd_none.c',
    ]

ASFLAGS += CONFIG['LIBJPEG_TURBO_ASFLAGS']
ASFLAGS += ['-I%s/media/libjpeg/simd/' % TOPSRCDIR]

if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
    NO_VISIBILITY_FLAGS = True

# We allow warnings for third-party code that can be updated from upstream.
ALLOW_COMPILER_WARNINGS = True

FINAL_LIBRARY = 'gkmedias'

